//
//  QFViewController.m
//  XibTableCell
//
//  Created by xubo on 14-1-20.
//  Copyright (c) 2014年 xubo. All rights reserved.
//

#import "QFViewController.h"
#import "QFCellModel.h"
#import "QFCell.h"
@interface QFViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (weak, nonatomic) IBOutlet UITableView *myTableView;

@end

@implementation QFViewController{
    NSMutableArray *_dataArray;
    NSString *_reuseID;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // xibcell
    /*
        MVC模式
        m ： model 数据模型  只负责存储数据
        v ：view  视图模型   只负责显示UI（通过传入的数据）
        c ：controller 控制器  把对应的m和v连起来
     */
    /*
        Xib定制Cell
        1、新建空xib，拖入一个TableViewcell控件，然后向里面拖入各种控件，设置大小、颜色等等属性，达到我们要求的效果。
        2、新建一个类，继承自UITableViewCell
        3、选中xib，选中根view，将类指定为上面新建的这个类，这样xib和类就建立了连接。
        4、将xib里面的控件拖入到.m或.h里
        5、在类的.h里面暴露一个方法，用于传入数据模型
        6、在类的.m里面实现该方法，用于根据数据模型刷新UI
        7、在viewcontroller中，给TableView注册xib
            [self.myTableView registerNib:[UINib nibWithNibName:@"QFCell" bundle:Nil] forCellReuseIdentifier:_reuseID];
        8、在return cell的代理函数中，通过复用ID直接弹出一个cell，不用判断是否为空，为空的话系统会帮我们实例化。
        9、找到对应的数据模型并传入cell，cell内部完成刷新UI。
        //8、9步的代码
            -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
                QFCell *cell=[tableView dequeueReusableCellWithIdentifier:_reuseID];
                QFCellModel *model=_dataArray[indexPath.row];
                [cell refreshUIWithModel:model];
                return cell;
            }
     */
    _dataArray=[NSMutableArray array];
    _reuseID=@"xibCellOne";
    for (int i=0; i<50; i++) {
        QFCellModel *model=[[QFCellModel alloc]init];
        model.userName=[NSString stringWithFormat:@"用户%d",i];
        model.userCon=[NSString stringWithFormat:@"用户%d的言论，！！！！！！！",i];
        model.time=@"13:20";
        model.picName=[NSString stringWithFormat:@"%03d",rand()%14+5];
        [_dataArray addObject:model];
    }
    
    //注册xib到tableview上
    [self.myTableView registerNib:[UINib nibWithNibName:@"QFCell" bundle:Nil] forCellReuseIdentifier:_reuseID];
    
}
#pragma mark--
#pragma mark tableview代理方法

//一共多少组
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;//默认是1
}
//每组多少行
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return  _dataArray.count;
}
//每行多高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 113;
}
//返回每行的cell
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    QFCell *cell=[tableView dequeueReusableCellWithIdentifier:_reuseID];
    QFCellModel *model=_dataArray[indexPath.row];
    [cell refreshUIWithModel:model];
    return cell;
}





@end
